{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "ck+_to_png.ipynb",
      "provenance": [],
      "authorship_tag": "ABX9TyMfMx0+cW1FHw1mYhFDu8yV",
      "include_colab_link": true
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github",
        "colab_type": "text"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/amilkh/cs230-fer/blob/master/ck%2B_to_png.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "PWC1w1-0xJlE",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "from google.colab import drive\n",
        "drive.mount('/content/drive')"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "KsbddzBi8gMQ",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "# https://github.com/ifp-uiuc/do-neural-networks-learn-faus-iccvw-2015/tree/master/data_scripts\n",
        "! git clone https://github.com/ifp-uiuc/do-neural-networks-learn-faus-iccvw-2015.git"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "J76fXHTw-FCU",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "! rm -rf ck+ && mkdir ck+\n",
        "! unzip -q '/content/drive/My Drive/cs230 project/dataset/ck+/extended-cohn-kanade-images.zip' -d /content/ck+\n",
        "! unzip -q '/content/drive/My Drive/cs230 project/dataset/ck+/FACS_labels.zip' -d /content/ck+\n",
        "! unzip -q '/content/drive/My Drive/cs230 project/dataset/ck+/Emotion_labels.zip' -d /content/ck+\n",
        "! mv '/content/ck+/Emotion'{,_labels}"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "cJgl4RTOzaSu",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "# These folders give some processing issue, so we delete them\n",
        "! rm -rf ck+/cohn-kanade-images/S5*"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "I9IUoYiGyyOx",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        },
        "outputId": "cc2021d4-aa85-461b-fa7c-b54d0adca2d7"
      },
      "source": [
        "! rm -rf ck-output && mkdir ck-output\n",
        "! python2 do-neural-networks-learn-faus-iccvw-2015/data_scripts/make_ck_plus_dataset.py --input_path /content/ck+/ --save_path /content/ck-output"
      ],
      "execution_count": 30,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "\n",
            "================================================================\n",
            "                Extended Cohn-Kanade Dataset Manager              \n",
            "================================================================\n",
            "\n",
            "Condensed Dataset detected.\n",
            "Removing it.\n",
            "Copying original dataset to new condensed dataset path.\n",
            "\n",
            "Condensing CK+ Dataset: \n",
            "255 empty sequences to be removed.\n",
            "\n",
            "Removing image sequence folders that have no label.\n",
            "There are 11 mismatched files.\n",
            "\n",
            "Removing empty label folders.\n",
            "\n",
            "Keeping only the first and last three images in each sequence.\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S005\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S010\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S011\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S014\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S022\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S026\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S028\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S029\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S032\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S034\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S035\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S037\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S042\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S044\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S045\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S046\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S050\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S051\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S052\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S053\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S054\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S055\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S056\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S057\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S058\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S059\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S060\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S061\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S062\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S063\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S064\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S065\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S066\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S067\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S068\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S069\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S070\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S071\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S072\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S073\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S074\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S075\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S076\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S077\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S078\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S079\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S080\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S081\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S082\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S083\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S084\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S085\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S086\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S087\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S088\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S089\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S090\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S091\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S092\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S093\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S094\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S095\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S096\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S097\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S098\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S099\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S100\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S101\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S102\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S105\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S106\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S107\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S108\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S109\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S110\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S111\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S112\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S113\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S114\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S115\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S116\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S117\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S119\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S122\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S124\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S125\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S126\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S127\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S128\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S129\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S130\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S131\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S132\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S133\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S134\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S135\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S136\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S137\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S138\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S139\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S147\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S148\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S149\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S151\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S154\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S155\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S156\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S157\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S158\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S160\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S895\n",
            "Processing:  /content/ck-output/cohn-kanade-images/S999\n",
            "\n",
            "Condensed CK+ Dataset Statistics: \n",
            "Total Number of Image Sequences: 308\n",
            "Total Number of Label Sequences: 327\n",
            "Number of sequences with correponding label .txt file: 327\n",
            "Total Number of Subjects: 112\n",
            "Number of image files: 1232\n",
            "\n",
            "Detecting and Cropping Faces\n",
            "/usr/local/lib/python2.7/dist-packages/skimage/transform/_warps.py:105: UserWarning: The default mode, 'constant', will be changed to 'reflect' in skimage 0.15.\n",
            "  warn(\"The default mode, 'constant', will be changed to 'reflect' in \"\n",
            "/usr/local/lib/python2.7/dist-packages/skimage/transform/_warps.py:110: UserWarning: Anti-aliasing will be enabled by default in skimage 0.15 to avoid aliasing artifacts when down-sampling images.\n",
            "  warn(\"Anti-aliasing will be enabled by default in skimage 0.15 to \"\n",
            "Missed Faces:  []\n",
            "\n",
            "Saving CK+ images and labels to .npy files.\n",
            "Subject: 0 - S005\n",
            "Subject: 1 - S010\n",
            "Subject: 2 - S011\n",
            "Subject: 3 - S014\n",
            "Subject: 4 - S022\n",
            "Subject: 5 - S026\n",
            "Subject: 6 - S028\n",
            "Subject: 7 - S029\n",
            "Subject: 8 - S032\n",
            "Subject: 9 - S034\n",
            "Subject: 10 - S035\n",
            "Subject: 11 - S037\n",
            "Subject: 12 - S042\n",
            "Subject: 13 - S044\n",
            "Subject: 14 - S045\n",
            "Subject: 15 - S046\n",
            "Subject: 16 - S050\n",
            "Subject: 17 - S051\n",
            "Subject: 18 - S052\n",
            "Subject: 19 - S053\n",
            "Subject: 20 - S054\n",
            "Subject: 21 - S055\n",
            "Subject: 22 - S056\n",
            "Subject: 23 - S057\n",
            "Subject: 24 - S058\n",
            "Subject: 25 - S059\n",
            "Subject: 26 - S060\n",
            "Subject: 27 - S061\n",
            "Subject: 28 - S062\n",
            "Subject: 29 - S063\n",
            "Subject: 30 - S064\n",
            "Subject: 31 - S065\n",
            "Subject: 32 - S066\n",
            "Subject: 33 - S067\n",
            "Subject: 34 - S068\n",
            "Subject: 35 - S069\n",
            "Subject: 36 - S070\n",
            "Subject: 37 - S071\n",
            "Subject: 38 - S072\n",
            "Subject: 39 - S073\n",
            "Subject: 40 - S074\n",
            "Subject: 41 - S075\n",
            "Subject: 42 - S076\n",
            "Subject: 43 - S077\n",
            "Subject: 44 - S078\n",
            "Subject: 45 - S079\n",
            "Subject: 46 - S080\n",
            "Subject: 47 - S081\n",
            "Subject: 48 - S082\n",
            "Subject: 49 - S083\n",
            "Subject: 50 - S084\n",
            "Subject: 51 - S085\n",
            "Subject: 52 - S086\n",
            "Subject: 53 - S087\n",
            "Subject: 54 - S088\n",
            "Subject: 55 - S089\n",
            "Subject: 56 - S090\n",
            "Subject: 57 - S091\n",
            "Subject: 58 - S092\n",
            "Subject: 59 - S093\n",
            "Subject: 60 - S094\n",
            "Subject: 61 - S095\n",
            "Subject: 62 - S096\n",
            "Subject: 63 - S097\n",
            "Subject: 64 - S098\n",
            "Subject: 65 - S099\n",
            "Subject: 66 - S100\n",
            "Subject: 67 - S101\n",
            "Subject: 68 - S102\n",
            "Subject: 69 - S105\n",
            "Subject: 70 - S106\n",
            "Subject: 71 - S107\n",
            "Subject: 72 - S108\n",
            "Subject: 73 - S109\n",
            "Subject: 74 - S110\n",
            "Subject: 75 - S111\n",
            "Subject: 76 - S112\n",
            "Subject: 77 - S113\n",
            "Subject: 78 - S114\n",
            "Subject: 79 - S115\n",
            "Subject: 80 - S116\n",
            "Subject: 81 - S117\n",
            "Subject: 82 - S119\n",
            "Subject: 83 - S122\n",
            "Subject: 84 - S124\n",
            "Subject: 85 - S125\n",
            "Subject: 86 - S126\n",
            "Subject: 87 - S127\n",
            "Subject: 88 - S128\n",
            "Subject: 89 - S129\n",
            "Subject: 90 - S130\n",
            "Subject: 91 - S131\n",
            "Subject: 92 - S132\n",
            "Subject: 93 - S133\n",
            "Subject: 94 - S134\n",
            "Subject: 95 - S135\n",
            "Subject: 96 - S136\n",
            "Subject: 97 - S137\n",
            "Subject: 98 - S138\n",
            "Subject: 99 - S139\n",
            "Subject: 100 - S147\n",
            "Subject: 101 - S148\n",
            "Subject: 102 - S149\n",
            "Subject: 103 - S151\n",
            "Subject: 104 - S154\n",
            "Subject: 105 - S155\n",
            "Subject: 106 - S156\n",
            "Subject: 107 - S157\n",
            "Subject: 108 - S158\n",
            "Subject: 109 - S160\n",
            "Subject: 110 - S895\n",
            "Subject: 111 - S999\n",
            "\n",
            "Making the folds.\n",
            "Subjs in fold 0: [  0  10  20  30  40  50  60  70  80  90 100 110]\n",
            "Subjs in fold 1: [  1  11  21  31  41  51  61  71  81  91 101 111]\n",
            "Subjs in fold 2: [  2  12  22  32  42  52  62  72  82  92 102]\n",
            "Subjs in fold 3: [  3  13  23  33  43  53  63  73  83  93 103]\n",
            "Subjs in fold 4: [  4  14  24  34  44  54  64  74  84  94 104]\n",
            "Subjs in fold 5: [  5  15  25  35  45  55  65  75  85  95 105]\n",
            "Subjs in fold 6: [  6  16  26  36  46  56  66  76  86  96 106]\n",
            "Subjs in fold 7: [  7  17  27  37  47  57  67  77  87  97 107]\n",
            "Subjs in fold 8: [  8  18  28  38  48  58  68  78  88  98 108]\n",
            "Subjs in fold 9: [  9  19  29  39  49  59  69  79  89  99 109]\n",
            "Number of samples/fold: [124 152 148 124 112 132 112 108 132  88]\n",
            "\n",
            "Successfully pre-processed the Extended Cohn-Kanade Dataset!\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "1UTkUylhIEiq",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "# TODO: use sed to replace 96 with 48 in python file"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "ssPdIwrJGVSv",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "def reindex_labels(y):\n",
        "    label_mapping = {1: 0, 3: 1, 4: 2, 5: 3, 6: 4, 7: 5}\n",
        "    for label in label_mapping.keys():\n",
        "        y[y == label] = label_mapping[label]\n",
        "\n",
        "    return y"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "7thKHuzr4enP",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "import numpy as np\n",
        "\n",
        "X = np.load('/content/ck-output/npy_files/X.npy')\n",
        "y8 = np.load('/content/ck-output/npy_files/y.npy')\n",
        "y = reindex_labels(y8)"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "GSH3CX8IE5yj",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "import matplotlib.pyplot as plt\n",
        "\n",
        "emotions = {0:'angry', 1:'disgust', 2:'fear', 3:'happy', 4:'sad', 5:'surprise', 6:'neutral'}\n",
        "\n",
        "for i in range(0,10):\n",
        "  plt.xlabel(emotions[y[i]])\n",
        "  plt.imshow(X[i].reshape(96,96),cmap='gray')\n",
        "  plt.figure()"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Rd-enGupIs_1",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 35
        },
        "outputId": "362718e2-8d0d-423c-9595-8b3963f600d3"
      },
      "source": [
        "X.shape"
      ],
      "execution_count": 70,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(1232, 1, 96, 96)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 70
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "ZvgocTG4KF1v",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "from os import mkdir\n",
        "mkdir('/content/ck-images/')\n",
        "for emotion in emotions:\n",
        "  mkdir(f'/content/ck-images/' + f'{emotion} ' + f'{emotions[emotion]}')"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "ojFKvNRXFA5G",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "from PIL import Image\n",
        "\n",
        "count = 0\n",
        "for i in range(0,X.shape[0]):\n",
        "    count_string = str(count).zfill(7)\n",
        "    fname = '/content/ck-images/' + f'{y[i]} ' + f'{emotions[y[i]]}/' + f'{emotions[y[i]]}-{count_string}.png'\n",
        "    img = Image.fromarray(X[i].reshape(96,96))\n",
        "    img=img.resize((48,48))\n",
        "    img.save(fname) \n",
        "    count += 1"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "b-lZOMv4JCPC",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "! cd ck-images && zip -r ck-plus.zip *"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "pCsREeBHK2N7",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "! mv ck-images/ck-plus.zip '/content/drive/My Drive/cs230 project/dataset/'"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "lZlxu8ciL0Y4",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 326
        },
        "outputId": "d39db1b8-ab03-4606-c47b-377b7882939f"
      },
      "source": [
        "! ls -lh '/content/drive/My Drive/cs230 project/dataset/'"
      ],
      "execution_count": 97,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "total 218M\n",
            "drwx------  2 root root 4.0K Mar 15 04:00  ck+\n",
            "-rw-------+ 1 root root 2.3M Mar 18 19:49  ck-plus.zip\n",
            "drwx------  2 root root 4.0K Mar 15 02:57  emotion\n",
            "-rw-------  1 root root  50M Mar 15 03:01  emotion.zip\n",
            "-rw-------  1 root root  51M Mar 15 18:29  facesdb.zip\n",
            "drwx------  2 root root 4.0K Mar 12 17:11  fer2013\n",
            "-rw-------  1 root root 299K Mar 15 15:53  googlesearch.zip\n",
            "drwx------  2 root root 4.0K Mar 15 03:15  googleset\n",
            "-rw-------  1 root root 3.8M Mar 15 03:15  googleset.zip\n",
            "drwx------  2 root root 4.0K Mar 12 21:21  jaffedbase\n",
            "-rw-------  1 root root  12M Mar 15 18:29  jaffe.zip\n",
            "drwx------  2 root root 4.0K Mar 15 15:32  old\n",
            "-rw-------  1 root root 100M Mar 15 15:32  umea.zip\n",
            "dr-x------  2 root root 4.0K Mar 12 17:11  webcam\n",
            "-rw-------  1 root root 588K Mar 18 00:04 'webcam amil.zip'\n",
            "-rw-------  1 root root 346K Mar 17 23:46 'webcam paki.zip'\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "uAA7hlqTL-el",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        ""
      ],
      "execution_count": 0,
      "outputs": []
    }
  ]
}